#include<bits/stdc++.h>
using namespace std;
int t;
struct car{
    int d,a,v;
    double s;
    queue <int> q;
}c[100005];
bool cmp(car c1,car c2){
    if(c1.q.empty()) return false;
    if(c2.q.empty()) return true;
    if(c1.q.front()==c2.q.front()){
        return c1.q.back()<c2.q.back();
    }
    return c1.q.front()<c2.q.front();
}
int main(){
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    cin>>t;
    while(t--){
        int n,m,l,vs;
        int test[100005];
        cin>>n>>m>>l>>vs;
        for(int i=1;i<=n;i++){
            cin>>c[i].d>>c[i].v>>c[i].a;
        }
        for(int i=1;i<=m;i++){
            cin>>test[i];
        }
        int cnt=0;
        for(int i=1;i<=n;i++){
            if(c[i].v>vs&&c[i].a>=0){
                cnt++;
                for(int j=1;j<=m;j++){
                    if(test[j]>=c[i].d){
                        c[i].q.push(test[j]);
                    }
                }
            }else if(c[i].v==vs&&c[i].a>0){
                cnt++;
                for(int j=1;i<=m;j++){
                    if(test[j]>=c[i].d){
                        c[i].q.push(test[j]);
                    }
                }
            }else if(c[i].v<vs&&c[i].a>0){
                c[i].s=(vs*vs-c[i].v*c[i].v)/double(2*c[i].a);
                for(int j=1;j<=m;j++){
                    if(test[j]>=c[i].d+c[i].s){
                        c[i].q.push(test[j]);
                    }
                }
                if(!c[i].q.empty()){
                    cnt++;
                }
            }else if(c[i].v>vs&&c[i].a<0){
                c[i].s=(vs*vs-c[i].v*c[i].v)/double(2*c[i].a);
                for(int j=1;j<=m;j++){
                    if(test[j]>=c[i].d&&test[j]<=c[i].d+c[i].s){
                        c[i].q.push(test[j]);
                    }else if(test[j]>c[i].d+c[i].s){
                        break;
                    }
                }
                if(!c[i].q.empty()){
                    cnt++;
                }
            }
        }
        cout<<cnt<<" "<<cnt;
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}
